#include "mainscene.h"
#include "ui_mainscene.h"
#include <QPainter>
#include "mypushbutton.h"
#include <QMouseEvent>
#include <QDebug>
#include "chooselevelscene.h"
#include <QTimer>


MainScene::MainScene(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainScene)
{
    ui->setupUi(this);

    //配置主场景

    //设置标题
    this->setWindowTitle("CoinFilp");

    //设置固定大小
    this->setFixedSize(320,588);

    //设置左上角图标
    this->setWindowIcon(QIcon(":/res/Coin0001.png"));  //可用QIcon和QPixmap类型

    //退出按钮实现
    connect(ui->actionquit,&QAction::triggered,this,[=](){
        this->close();
    });

    //开始按钮
    MyPushButton* startbtn = new MyPushButton(":/res/MenuSceneStartButton.png");
    startbtn->setParent(this);
    startbtn->move( this->width() * 0.5 - startbtn->width() * 0.5,this->height() * 0.65);

    //实例化选择关卡场景
    cls = new ChooseLevelScene;

    //监听 choosescene的back按钮的信号
    connect(cls,&ChooseLevelScene::ChooseSceneBack,this,[=](){
        this->setGeometry(cls->geometry());
        //重新隐藏关卡选择页面，显示主场景
        cls->hide();
        this->show();
    });

    connect(startbtn,&MyPushButton::clicked,[=](){
        qDebug()<<"点击开始按钮";

        //延迟500ms后，进入选择场景
        QTimer::singleShot(300,this,[=](){
            //设置choose场景页面的位置
            cls->setGeometry(this->geometry());
            //点击开始按钮后隐藏此页面
            this->hide();
            //显示选择关卡页面
            cls->show();    
        });
    });
}

//实现paintevent事件  画背景图  引入头文件 QPainter
void MainScene::paintEvent(QPaintEvent*)
{
    //创建画家 指定绘图设备
    QPainter painter(this);
    //创建QPixmap对象
    QPixmap pix;
    //加载图片
    pix.load(":/res/MenuSceneBg.png");
    //绘制背景图
    painter.drawPixmap(0,0,this->width(),this->height(),pix);
}

MainScene::~MainScene()
{
    delete ui;
}
